package _4_constructmethod;

public class Student 
{
    //构造方法名与类名相同
	//空参数构造方法
	public Student() 
	{
		System.out.println("无参构造方法执行了");
	}
	//有参数构造方法
	/*写了有参构造方法，一定要写空参的。没写有参构造方法，不手动写空参构造方法，系统也会自动帮你写空参的构造方法。
	写了有参构造方法，系统不会自动帮你写空参的构造方法*/
	public Student(String name, int age) 
	{
	    //this(18, "aa");  //构造方法不能互相调用,另外，普通方法也是不能互相调用的
		this.name = name;
		this.age = age;
		System.out.println("(" + name + ", " + age + ")有参构造方法执行了");
	}
	//成员变量还得有
	String name;
	int age;
	//还有show方法
	public void show() 
	{
		System.out.println("姓名是：" + name);
		System.out.println("年龄是：" + age);
	}
    //构造方法可以重载（局部变量的设置可以不同）
	//public Student(String reload, int re) (String, int)的已经有了，这样就重复了，不能用
	
	public Student(int re, String reload)
	{
	    //在构造方法中调用本类的其它构造方法
	    /*在构造方法中用this调用其它构造方法时，必须写在第一句，所以一个构造方法最多只能有一个调用
	    其它构造方法的this，而在调用其它普通方法时则没有此限制*/
	    //this();   //调用无参构造方法
	    this("张三调用", 15);  //填入对应类型的参数即可调用对应的有参构造方法
		System.out.println("构造方法的重载,以上调用无参构造方法，或（String, int)的构造方法");		
	}
	
	
	
	/*构造方法快捷创建方法：
	 * 空白处右键，【source】【...using fields...】/【...from superclass...】
	 */
}
